1. Field of the Invention
This invention generally relates to fault tolerance in a pre-boot execution environment, and specifically to a client side pre-boot execution environment.
2. Background of the Invention
A common problem faced in the Information Technology (IT) sector is to ensure that client systems in an enterprise can boot appropriate software images using appropriate configuration parameters. These selected boot images and configuration parameters must be acquired from selected servers from within the enterprise as dictated by the needs of the particular environment, the capabilities or mission of the user, the resources available within the client, etc. Furthermore, these clients should boot consistently and in an interoperable manner regardless of the sources or vendors of the software and the hardware of both client and server machines.
Typically, this goal can be accomplished only through a uniform and consistent set of pre-boot protocol services within the client that ensure that network-based booting is accomplished following industry standard protocols used to communicate with the server. In addition, to ensure interoperability, the downloaded Network Bootstrap Program (NBP), hereinafter also referred to as a bootstrap file, must be presented with a uniform and consistent pre-boot operating environment within the booting client, so that it can accomplish its task independent of, for example, the type of network adapter implemented in the system.
This capability is generally useful in enhancing the manageability of the client machine in several situations; for example:                Remote new system setup. If the client does not have an OS installed on its hard disk, or the client has no hard disk at all, downloading an NBP from a server can help automate the OS installation and other configuration steps.        Remote emergency boot. If the client machine fails to boot due to a hardware or software failure, downloading an executable image from a server can provide the client with a specific executable that enables remote problem notification and diagnosis.        Remote network boot. In instances where the client machine has no local storage, it can download its system software image from the server in the course of normal operation.        
Typically, the Preboot Execution Environment (PXE). PXE embodies three technologies that will establish a common and consistent set of pre-boot services within the boot firmware of Intel Architecture systems:                A uniform protocol for the client to request the allocation of a network address and subsequently request the download of an NBP from a network boot server.        A set of APIs available in the machine's pre-boot firmware environment that constitutes a consistent set of services that can be employed by the NBP or the BIOS.        A standard method of initiating the pre-boot firmware to execute the PXE protocol on the client machine.        
Therefore, using the capabilities described above, a newly installed networked client machine should be able to enter a heterogeneous network, acquire for itself a network address from a Dynamic Host Configuration Protocol (DHCP) server, and then download an NBP to set itself up. This sets the stage to enable IT managers to customize the manner in which their network client machines go through a network-based booting process. When PXE is used to boot or install an OS in a machine, the scenario is to download the OS image from a PXE server through a Network adapter, network interface card, (NIC). The existing implementation of PXE restricts to the use of only one NIC at a time, even if more are available in the machine. If the NIC fails in between the downloading process, the scheduled job needs to be restarted by restarting the client machine itself. Therefore, a disadvantage is that the time spent would be in vain and there would be an unnecessary increase in network traffic.
A known solution to overcome the disadvantage observed with the single NIC is made available in the Dell PowerEdge 1655MC blade server, where one can set the server to be in fault tolerant PXE mode, so that problems that arise due to NIC failure are averted, see http://www.dell.com/content/topics/global.aspx/power/en/ps1q03_jaffe. The disadvantages with the existing solution are:                the already existing IT installation needs to be replaced with Dell 1655MC to accommodate fault tolerance.        the implementation needs to be hard coded in the firmware. Hence, BIOS re-flashing and additional firmware memory may be required to accommodate fault tolerance in existing IT installations.        
Without a way to provide an improved method and system to manage fault tolerance in the pre-boot execution environment, the promise of this technology may never be fully achieved.